package com.sky.exception;

/**
 * 当前类名: BaseException    基础异常类
 */

/**
 * BaseException; 继承自 `RuntimeException` 的基础业务异常类。
 * 该异常类是所有自定义业务异常的父类，用于处理应用程序中的运行时异常。
 * 可以通过继承该类实现更细粒度的业务异常。
 */
public class BaseException extends RuntimeException {
    /**
     * * 知识点:
     * 1. 异常类继承自 `RuntimeException`：表示该异常是一个运行时异常，可以在程序执行时抛出，且不强制要求捕获。
     *    - 运行时异常 (`RuntimeException`) 是 `Exception` 类的子类，用于表示程序中的各种逻辑错误或不期望的行为。
     *    - 运行时异常通常不强制进行捕获或声明抛出，但可以根据需要进行处理。
     * 2. 构造方法：
     *    - 无参构造方法 `BaseException()` 用于创建一个无任何错误消息的异常对象。
     *    - 带参数构造方法 `BaseException(String msg)` 用于创建一个包含错误消息的异常对象。通过调用 `super(msg)` 将错误消息传递给父类 `RuntimeException` 进行处理。
     * 3. `super(msg)`：表示调用父类 `RuntimeException` 的构造方法，并将错误消息传递给它。
     * 4. `RuntimeException` 是所有未检查异常（即运行时异常）的父类，意味着这类异常不需要显示捕获（虽然可以捕获）。用于表示系统发生的不期望的错误。
     * 5. 在业务中，通常会根据具体的业务需求继承 `BaseException` 创建特定的异常类（如 `AccountNotFoundException`、`OrderBusinessException` 等）。
     */
    public BaseException() {
    }

    public BaseException(String msg) {
        super(msg);
    }// 将错误消息传递给父类的构造方法

}
/**
 * 仿写：DatabaseException; 用于表示数据库操作中的异常。
 * 该异常通常在数据库连接失败、查询出错等数据库相关操作异常时抛出。
 * public class DatabaseException extends BaseException {
 *     public DatabaseException() {
 *     }
 *     public DatabaseException(String msg) {
 *         super(msg);  // 调用父类构造方法传递异常消息
 *     }
 * }
 */
